import moment from 'moment'

const time = {
  day: moment().startOf('day').format('YYYY-MM-DD'), // 今天
  dayRealTime: moment().format('YYYY-MM-DD HH:mm:ss'), // 今天时间
  dayTime: moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'), // 此刻时间
  lastDay: moment().subtract(1, 'days').format('YYYY-MM-DD'), // 昨天
  lastWeek: moment().subtract(7, 'days').format('YYYY-MM-DD'), // 上周
  lastMonth: moment().subtract(1, 'months').format('YYYY-MM-DD'), // 上月
  lastYear: moment().subtract(1, 'years').format('YYYY'), // 去年
  lastMonthsStart: moment().subtract(1, 'months').startOf('month').format('YYYY-MM-DD'),
  lastMonthsEnd: moment().subtract(1, 'months').endOf('month').format('YYYY-MM-DD'),
  lastDayForHour: moment().subtract(1, 'days').format('YYYY-MM-DD HH:00:00'), // 昨天
  lastWeekForHour: moment().subtract(7, 'days').format('YYYY-MM-DD HH:00:00'), // 上周
  lastMonthForHour: moment().subtract(1, 'months').format('YYYY-MM-DD HH:00:00'), // 上月
  startWeek: moment().startOf('isoWeek').format('YYYY-MM-DD'), // 本周一
  endWeek: moment().endOf('isoWeek').format('YYYY-MM-DD'), // 本周日
  startMonth: moment().startOf('month').format('YYYY-MM-DD'), // 本月一号
  endMonth: moment().endOf('month').format('YYYY-MM-DD'), // 本月最后一天
  startYear: moment().startOf('year').format('YYYY-MM-DD'), // 当年一月一号
  lastStartYear: moment().subtract(1, 'years').startOf('year').format('YYYY-MM-DD'), // 去年年一月一号
  endYear: moment().endOf('year').format('YYYY-MM-DD'), // 当年最后一天
  lastStartWeek: moment().startOf('isoWeek').subtract(7, 'days').format('YYYY-MM-DD'), // 上周一
  lastEndWeek: moment().endOf('isoWeek').subtract(7, 'days').format('YYYY-MM-DD'), // 上周日
  currentHour: moment().startOf('hour').format('YYYY-MM-DD HH'), // 当前时间到小时
  lastHour: moment().startOf('hour').subtract(1, 'hour').format('YYYY-MM-DD HH:mm:ss'), // 上一个小时
  queryLastDay: function(value) {
    return moment(value, 'YYYY-MM-DD').subtract(1, 'days').format('YYYY-MM-DD')
  },
  queryStartWeek: function(value) {
    return moment(value, 'YYYY-MM-DD').startOf('isoWeek').format('YYYY-MM-DD')
  },
  queryEndWeek: function(value) {
    return moment(value, 'YYYY-MM-DD').endOf('isoWeek').format('YYYY-MM-DD')
  },
  queryStartMonth: function(value, format = 'YYYY-MM-DD') {
    return moment(value, format).startOf('month').format('YYYY-MM-DD')
  },
  queryEndMonth: function(value, format = 'YYYY-MM-DD') {
    return moment(value, format).endOf('month').format('YYYY-MM-DD')
  },
  queryStartYear: function(value) {
    return moment(value, 'YYYY-MM-DD').startOf('year').format('YYYY-MM-DD')
  },
  queryEndYear: function(value) {
    return moment(value, 'YYYY-MM-DD').endOf('year').format('YYYY-MM-DD')
  },
  queryLastDayTime: function(value) {
    return moment(value, 'YYYY-MM-DD HH:mm:ss').subtract(1, 'days').format('YYYY-MM-DD HH:mm:ss')
  },
  queryLastDayRealTimeTime: function(value) {
    return moment(value, 'YYYY-MM-DD HH:mm:ss').subtract(1, 'days').format('YYYY-MM-DD HH:mm:ss')
  }
}
export default time
